global tani_hour, tani_min, tani_sec, Send_hour, Send_min, Send_sec property Trans_speed : "28.8" --直接起動された on run set File_list to {} tell application "Finder" activate repeat with sFile in selection set File_list to File_list & (sFile as alias) end repeat if File_list is {} then set File_list to {} repeat try choose file with prompt "処理するfileを選んでください(最後はキャンセルを押す)" set File_list to File_list & result on error errMsg number ERRNO if ERRNO is -128 then --キャンセルが押されたら exit repeat else --それ以外の不意打ちには error errMsg & ERRNO exit repeat end if end try end repeat end if end tell my main(File_list) end run --ドラッグ&ドロップされた on open File_list my main(File_list) end open --計算のメインルーチン on main(File_list) tell application "Finder" activate set ANS to display dialog "およその通信スピードを入力してください" default answer (Trans_speed as string) buttons {"bps", "Kbps", "Mbps"} default button 2 with icon 1 set Trans_speed to (text returned of ANS) as number set Modem_speed to button returned of ANS if Modem_speed = "bps" then set Modem_speed to 1 else if Modem_speed = "Kbps" then set Modem_speed to 1024 else if Modem_speed = "Mbps" then set Modem_speed to 1048576 end if set File_size to "" repeat with aFile in File_list set File_size to (File_size as number) + (size of aFile) end repeat set Send_time to ((File_size * 8) / (Trans_speed * Modem_speed)) div 1 set tani_hour to "" --単位の初期化 set tani_min to "" set tani_sec to "" set Send_hour to "" set Send_min to "" set Send_sec to "" set Send_time to my jikan(Send_time) display dialog "このファイル(合計:" & File_size & " byte)はおよそ" & return & (Send_time as string) & return & "ぐらいで送れると思いますよ...たぶん(^_^; " end tell end main --秒を時間に換算 on jikan(Send_time) if Send_time ウ 3600 then set Send_hour to Send_time div 3600 set Send_min to Send_time mod 3600 set tani_hour to "時間" my jikan(Send_min) else if Send_time ウ 60 then set Send_min to Send_time div 60 set Send_sec to Send_time mod 60 set tani_min to "分" my jikan(Send_sec) else set Send_sec to Send_time if tani_min = "" and Send_sec = 0 then set Send_sec to 1 set tani_sec to "秒" end if set Send_time to (Send_hour as string) & tani_hour & Send_min & tani_min & Send_sec & tani_sec return Send_time end jikan